<?php

// module/Site/src/Album/Controller/AlbumController.php:

namespace Registration\Controller;

use Registration\Model\Position;
use Registration\Model\PositionTable;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\Authentication\Storage;
use Zend\Authentication\Adapter;
use Zend\Authentication\AuthenticationService;
use Zend\Authentication\Adapter\DbTable;
use Zend\Authentication\Adapter\DbTable as AuthAdapter;

class UserController extends AbstractActionController {

    public function auth($login, $pass) {
//получим на вход логин и пароль
        $sm = $this->getServiceLocator();
        $dbAdapter = $sm->get('ZendDbAdapterAdapter');
        $authAdapter = new AuthAdapter($dbAdapter);
        $authAdapter->setTableName('users')
                ->setIdentityColumn('login')
                ->setCredentialColumn('pass')
        ;
//определим таблицу и колонки авторизации

        $authAdapter->setIdentity($login)
                ->setCredential(md5($pass));
//укажем то, что нам пришло



        $auth = new AuthenticationService();
        $result = $auth->authenticate($authAdapter);
        echo $result->getIdentity() . "\n\n";

// Print the result row
        print_r($authAdapter->getResultRowObject());
        
            $storage = $auth->getStorage();
         $storage->write($authAdapter->getResultRowObject(array(
                        'id',
                        'login',
                    )));
//пытаемся авторизоваться

        if ($result->isValid()) {
            $storage->write($authAdapter->getResultRowObject());
        }
//если авторизовались, то складываем в сторадж нужную нам //информацию. Далее, в любой момент мы легко можем получить к 	 //ней доступ.

        return array('result' => $result, 'autch_array' => $authAdapter->getResultRowObject(array(
                'id',
                'login',
            ))
        );
    }

    public function indexAction() {
        $request = $this->getRequest();
        if ($request->isPost()) {
            $login = $request->getPost('login');
            $pass = $request->getPost('pass');
        } else {
            
        }
        $login = "wcd";
        $pass = "123";
        $result = $this->auth($login, $pass);
        $view = new ViewModel(array('title' => 'User page', 'pass' => md5(123)));
        return $view;
    }

    public function loginAction() {
        $storage = $this->getServiceLocator()->get('AuthService')->getStorage(); 
        $result = $storage->read();
        print_r($result['id']);
//            $users = $this->getServiceLocator()->get('AuthService')->getStorage()->read(); 
//    echo $users['username'];
        $view = new ViewModel(array('title' => 'Logout page'));
        return $view;
    }

    public function logoutAction() {
        $view = new ViewModel(array('title' => 'Login page'));
        return $view;
    }

    public function registrationAction() {
        $view = new ViewModel(array('title' => 'Registration page'));
        return $view;
    }

}